package org.example.demo.entity;

import com.kfyang.manualgear.annotation.crud.Construct;
import com.kfyang.manualgear.annotation.orm.*;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@Table("`user`") // 标识对应于数据库中的哪张表
public class UserEntity {
    @Id // 标识为 id
    private Integer id;

    @Col("username") // 若字段名与表中列名不同，则显式标注
    private String name;

    private String password;

    @CreateTime // 插入时自动填充创建时间
    private Date createTime;

    @UpdateTime // 更新时自动更新时间
    private Date updateTime;

    @LogicalDelete // 0表示未删除，1表示已删除
    private Integer isDeleted;

    @NotCol // 不进行映射
    private String rawPassword;

    @Construct("constructor1") // 可用于构造器注入
    public UserEntity(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
}

